home *** CD-ROM | disk | FTP | other *** search
-
-
-
- bbbboooooooottttpppp((((1111MMMM)))) bbbboooooooottttpppp((((1111MMMM))))
-
-
-
- NNNNAAAAMMMMEEEE
- bootp - server for Internet Bootstrap Protocol
-
- SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
- ////uuuussssrrrr////eeeettttcccc////bbbboooooooottttpppp [ ----dddd ] [ ----ffff ]
-
- DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
- _b_o_o_t_p is a server that supports the Internet Bootstrap Protocol (BOOTP).
- This protocol is designed to allow a (possibly diskless) client machine
- to determine its own Internet address, the address of a boot server, and
- the name of an appropriate boot file to be loaded and executed. BOOTP
- does not provide the actual transfer of the boot file, which is typically
- done with a simple file transfer protocol such as TFTP. A detailed
- protocol specification for BOOTP is contained in RFC 951, which is
- available from the Network Information Center.
-
- The BOOTP protocol uses UDP/IP as its transport mechanism. The BOOTP
- server receives service requests at the UDP port indicated in the
- ``bootp'' service description contained in the file /_e_t_c/_s_e_r_v_i_c_e_s (see
- _s_e_r_v_i_c_e_s(4)). The BOOTP server is started by _i_n_e_t_d(1M), as configured in
- the _i_n_e_t_d._c_o_n_f file.
-
- The basic operation of the BOOTP protocol is a single packet exchange as
- follows:
-
- 1. The booting client machine broadcasts a BOOTP request packet to the
- BOOTP server UDP port, using a UDP broadcast or the equivalent
- thereof. The request packet includes the following information:
-
- requester's network hardware address
- requester's Internet address (optional)
- desired server's name (optional)
- boot filename (optional)
-
- 2. All the BOOTP servers on the same network as the client machine
- receive the client's request. If the client has specified a
- particular server, then only that server responds.
-
- 3. The server looks up the requester in its configuration file by
- Internet address or network hardware address, in that order of
- preference. (The BOOTP configuration file is described below.) If
- the Internet address was not specified by the requester and a
- configuration record is not found, the server looks in the
- /_e_t_c/_e_t_h_e_r_s file (see _e_t_h_e_r_s(4)) for an entry with the client's
- network hardware address. If an entry is found, the server checks
- the hostname of that entry against the /_e_t_c/_h_o_s_t_s file (see _h_o_s_t_s(4))
- in order to complete the network hardware address to Internet address
- mapping. If the BOOTP request does not include the client's Internet
- address and the server is unable to translate the client's network
- hardware address into an Internet address by either of the two
- methods described, the server does not respond to the request.
-
-
-
-
- PPPPaaaaggggeeee 1111
-
-
-
-
-
-
- bbbboooooooottttpppp((((1111MMMM)))) bbbboooooooottttpppp((((1111MMMM))))
-
-
-
- 4. The server performs name translation on the boot filename requested
- and then checks for the presence of that file. If the file is
- present, then the server sends a response packet to the requester
- that includes the following information:
-
- requester's Internet address
- server's Internet address
- Internet address of a gateway to the server
- server's name
- vendor-specific information (not defined by the protocol)
-
- If the boot file is missing, the server returns a response packet
- with a null filename but only if the request was specifically
- directed to that server. The pathname translation is: if the boot
- filename is rooted, use it as is; else concatenate the root of the
- boot subtree, as specified by the BOOTP configuration file, followed
- by the filename supplied by the requester, followed by a period and
- the requester's hostname. If that file is not present, remove the
- trailing period and hostname and try again. If no boot filename is
- requested, use the default boot file for that host from the
- configuration table. If there is no default specified for that host,
- use the general default boot filename, first with ._h_o_s_t_n_a_m_e as a
- suffix and then without. Note that _t_f_t_p_d(1M) must be configured to
- allow access to the boot file (see the _t_f_t_p_d(1M) reference page for
- details).
-
- OOOOppppttttiiiioooonnnnssss
- The ----dddd option causes _b_o_o_t_p to generate debugging messages. All messages
- from _b_o_o_t_p go through _s_y_s_l_o_g_d(1M), the system logging daemon.
-
- The ----ffff option enables the forwarding function of _b_o_o_t_p. Refer to the
- following section, ``Booting through Gateways,'' for an explanation.
-
- BBBBoooooooottttpppp CCCCoooonnnnffffiiiigggguuuurrrraaaattttiiiioooonnnn FFFFiiiilllleeee
- In order to perform its name translation and address resolution
- functions, _b_o_o_t_p requires configuration information that it gets from an
- ASCII file called /_e_t_c/_b_o_o_t_p_t_a_b and from other system configuration files
- like /_e_t_c/_e_t_h_e_r_s and /_e_t_c/_h_o_s_t_s. Here is a sample _b_o_o_t_p_t_a_b file:
-
- # /etc/bootptab: database for bootp server
- #
- # Blank lines and lines beginning with '#' are ignored.
- #
- # Root of boot subtree:
- /usr/local/boot
-
- # Default bootfile:
- unix
-
- %%
-
- # The remainder of this file contains one line per client
-
-
-
- PPPPaaaaggggeeee 2222
-
-
-
-
-
-
- bbbboooooooottttpppp((((1111MMMM)))) bbbboooooooottttpppp((((1111MMMM))))
-
-
-
- # interface with the information shown by the table headings
- # below. The 'host' name is also tried as a suffix for the
- # 'bootfile' when searching the boot directory.
- # (e.g., bootfile.host)
- #
- # host htype haddr iaddr bootfile
-
- IRIS 1 01:02:03:8a:8b:8c 192.0.2.1 unix
-
- The fields of each line can be separated by variable amounts of white
- space (blanks and tabs). The first section, up to the line beginning %%%%%%%%,
- defines the place where _b_o_o_t_p looks for boot files when the client
- requests a boot file using a nonrooted pathname. The second section of
- the file is used for mapping client network hardware addresses into
- Internet addresses. Up to 512 hosts can be specified. The _h_t_y_p_e field
- should always have a value of 1 for now; this indicates that the hardware
- address is a 48-bit Ethernet address. The _h_a_d_d_r field is the Ethernet
- address of the system in question expressed as six hexadecimal bytes
- separated by colons. The _i_a_d_d_r field is the 32-bit Internet address of
- the system expressed in standard Internet dot notation (see _i_n_e_t_d(3N)).
- Each line in the second section can also specify a default boot file for
- each specific host. In the example above, if the host called _u_n_i_x_b_o_x
- makes a BOOTP request with no boot file specified, the server selects the
- first of the following that it finds:
-
- /usr/local/boot/unix.unixbox
- /usr/local/boot/unix
-
- The length of the boot filename must not exceed 127 characters.
-
- It is not necessary to create a record for every potential client in the
- _b_o_o_t_p_t_a_b file. The only constraint is that _b_o_o_t_p responds only to a
- request from a client if it can deduce the client's Internet address.
- There are three ways that this can happen:
-
- +o The client already knows its Internet address and includes it in the
- BOOTP request packet.
- +o There is an entry in /_e_t_c/_b_o_o_t_p_t_a_b that matches the client's network
- hardware address.
- +o There are entries in the /_e_t_c/_e_t_h_e_r_s and /_e_t_c/_h_o_s_t_s files (or their
- NIS equivalents) that allow the client's network hardware address to
- be translated into an Internet address.
-
- BBBBoooooooottttiiiinnnngggg tttthhhhrrrroooouuuugggghhhh GGGGaaaatttteeeewwwwaaaayyyyssss
- Since the BOOTP request is distributed using a UDP broadcast, it is only
- received by other hosts on the same network as the client. In some cases
- the client may wish to boot from a host on another network. This can be
- accomplished by using the forwarding function of BOOTP servers on the
- local network. To use BOOTP forwarding, there must be a _b_o_o_t_p process
- running in a gateway machine on the local network. A gateway machine is
- simply a machine with more than one network interface board. The gateway
- _b_o_o_t_p must be invoked with the ----ffff option to activate forwarding. Such a
-
-
-
- PPPPaaaaggggeeee 3333
-
-
-
-
-
-
- bbbboooooooottttpppp((((1111MMMM)))) bbbboooooooottttpppp((((1111MMMM))))
-
-
-
- forwarding _b_o_o_t_p resends any BOOTP request it receives that asks for a
- specific host by name, if that host is on a different network from the
- client that sent the request. The BOOTP server forwards the packet using
- the full routing capabilities of the underlying IP layer in the kernel,
- so the forwarded packet is automatically routed to the requested BOOTP
- server if the kernel routing tables contain a route to the destination
- network.
-
- DDDDIIIIAAAAGGGGNNNNOOOOSSSSTTTTIIIICCCCSSSS
- The BOOTP server logs messages using the system logging daemon,
- _s_y_s_l_o_g_d(1M). The actual disposition of these messages depends on the
- configuration of _s_y_s_l_o_g_d on the machine in question. Consult _s_y_s_l_o_g_d(1M)
- for further information.
-
- _b_o_o_t_p can produce the following messages:
-
- 'get interface config' ioctl failed (_m_e_s_s_a_g_e)
- 'get interface netmask' ioctl failed (_m_e_s_s_a_g_e)
- getsockname failed (_m_e_s_s_a_g_e)
- forwarding failed (_m_e_s_s_a_g_e)
- send failed (_m_e_s_s_a_g_e)
- set arp ioctl failed
- Each of the above messages means that a system call has returned an
- error unexpectedly. Such errors usually cause _b_o_o_t_p to terminate.
- The _m_e_s_s_a_g_e is the appropriate standard system error message.
-
- less than two interfaces, -f flag ignored
- Warning only (debug mode). Means that the ----ffff option was specified
- on a machine that is not a gateway. Forwarding only works on
- gateways.
-
- request for unknown host _x_x_x _f_r_o_m _y_y_y
- Information only. A BOOTP request was received asking for host _x_x_x,
- but that host is not in the host database. The request was
- generated by _y_y_y, which can be given as a hostname or an Internet
- address.
-
- request from _x_x_x _f_o_r '_f_f_f'
- Information only. _b_o_o_t_p logs each request for a boot file. The
- host _x_x_x has requested boot file _f_f_f.
-
- can't access boot file fff (_m_e_s_s_a_g_e)
- A request has been received for the boot file _f_f_f, but that file is
- not accessible.
-
- reply boot filename fff too long
- The filename length _f_f_f exceeds the BOOTP protocol limit of 127
- characters.
-
- reply boot file fff
- Information only. _b_o_o_t_p has selected the file _f_f_f as the boot file
- to satisfy a request.
-
-
-
- PPPPaaaaggggeeee 4444
-
-
-
-
-
-
- bbbboooooooottttpppp((((1111MMMM)))) bbbboooooooottttpppp((((1111MMMM))))
-
-
-
- can't reply to dd.dd.dd.dd (unknown net)
- This _b_o_o_t_p has generated a response to a client and is trying to
- send the response directly to the client (that is, the request did
- not get forwarded by another _b_o_o_t_p), but none of the network
- interfaces on this machine is on the same directly connected network
- as the client machine.
-
- reply: can't find net for dd.dd.dd.dd
- The server is acting as BOOTP forwarder and has received a datagram
- with a client address that is not on a directly connected network.
-
- can't open /etc/bootptab
- The _b_o_o_t_p configuration file is missing or has wrong permissions.
-
- (re)reading /etc/bootptab
- Information only. _b_o_o_t_p checks the modification date of the
- configuration file on the receipt of each request and rereads it if
- it has been modified since the last time it was read.
-
- bad hex address: _x_x_x at line _n_n_n of bootptab
- bad internet address: _s_s_s at line _n_n_n of bootptab
- string truncated: _s_s_s, on line _n_n_n of bootptab
- These messages mean that the format of the BOOTP configuration file
- is not valid.
-
- 'hosts' table length exceeded
- There are too many lines in the second section of the BOOTP
- configuration file. The current limit is 512.
-
- can't allocate memory
- A call to _m_a_l_l_o_c(3C) failed.
-
- gethostbyname(_s_s_s) _f_a_i_l_e_d (_m_e_s_s_a_g_e)
- A call to _g_e_t_h_o_s_t_b_y_n_a_m_e(3N) with the argument _s_s_s has failed.
-
- gethostbyaddr(_d_d._d_d._d_d._d_d) _f_a_i_l_e_d (_m_e_s_s_a_g_e)
- A call to _g_e_t_h_o_s_t_b_y_a_d_d_r(3N) with the argument _d_d._d_d._d_d._d_d has
- failed.
-
- SSSSEEEEEEEE AAAALLLLSSSSOOOO
- dhcp_bootp(1M), inetd(1M), rarpd(1M), syslogd(1M), tftpd(1M), ethers(4),
- hosts(4), services(4).
-
-
-
-
-
-
-
-
-
-
-
-
-
- PPPPaaaaggggeeee 5555
-
-
-
-